export interface Mapper {
  type: 'vben' | 'element-plus'
  // Field 对象中的key, 支持多个层嵌套, 以 . 分割
  key: string;
  // 映射后的key, , 支持多个层嵌套, 以 . 分割
  mKey: string; 
  mValue?: number | string | Function | boolean;
}

export interface Field {
  // 类型
  type: string; 
  icon: string;
  category?: string;
  // 是否为表单item
  formItemFlag: boolean;
  // 使用时候(预览或者导出代码), 是否作为表单item, 一般情况下和formItemFlag一致, 
  // 当类型为分割线时候, 在编辑栏中的表单由于没有采用vben框架, 而是直接使用ant-design-vue或者其他框架
  // 所以要设置 formItemFlag = false, 才能不作为表单item
  // 但是当使用vben预览时候, 由于vben结构问题, 需要将 分割线 也作为表单item(其实底层做了处理, 没有添加到表单item中)
  // 只是应用层必须这么传递
  useAsFormItem?: boolean;
  // 导出和导入JSON时候的映射
  mappers?: Mapper[];
  settingForm?: object;
  props: object;
}
